package com.decent.util;


import com.decent.entity.common.Message;


/**
 * @author decent
 */
public class MessageUtils {
    private static final Integer SUCCESS_STATUS = 200;
    private static final Integer ERROR_STATUS = 400;

    /**
     * 状态 和 结果 的消息
     * @param flag 判断成功/失败
     * @param messageUtilEnum 成功失败枚举集
     * @return Message对象
     */
    public static Message buildMsg(boolean flag, MessageUtilEnum messageUtilEnum) {
        if (flag) {
                return buildMsg(messageUtilEnum.getMessageSuccessEnum());
        } else {
            return buildMsg(messageUtilEnum.getMessageErrorEnum());
        }
    }

    /**
     * 状态 结果 和 数据 的消息
     * @param flag 判断成功/失败
     * @param messageEnum 成功失败枚举集
     * @param data 数据
     * @return Message对象
     */
    public static Message buildMsg(boolean flag, MessageUtilEnum messageEnum, Object data) {
        if (flag) {
            if (messageEnum == null){
                return buildMsg(MessageEnum.NULL_MSG, data);
            } else {
                return buildMsg(messageEnum.getMessageSuccessEnum(), data);
            }
        } else {
            if (messageEnum == null){
                return buildMsg(MessageEnum.NULL_MSG,data);
            } else {
                return buildMsg(messageEnum.getMessageErrorEnum(),data);
            }
        }
    }

    /**
     * 自定义结果信息
     * @param flag 判断成功/失败
     * @param successMsg 成功信息
     * @param errorMsg 失败信息
     * @return Message对象
     */
    public static Message buildMsg(boolean flag, String successMsg, String errorMsg) {
        if (flag) {
            return buildSuccessMsg(successMsg);
        } else {
            return buildErrorMsg(errorMsg);
        }
    }

    /**
     * 创建成功消息 , 依次对应上面三种
     * @param messageEnum 成功结果枚举
     * @return Message对象
     */
    public static Message buildMsg(MessageEnum messageEnum) {
        return new Message(messageEnum.getStatus(), messageEnum.getMsg());
    }

    public static Message buildMsg(MessageEnum messageEnum, Object data) {
        return new Message(messageEnum.getStatus(), messageEnum.getMsg(), data);
    }

    public static Message buildSuccessMsg(String successMsg) {
        return new Message(SUCCESS_STATUS,successMsg);
    }

    public static Message buildErrorMsg(String errorMsg){
        return new Message(ERROR_STATUS, errorMsg);
    }

}
